10 REM ***************************** 20 REM * * 30 REM * DISK HOUSEKEEPING PROGRAM * 40 REM * * 50 REM * WRITTEN BY RODNEY O'BRIEN * 60 REM * COMMODORE COMPUTER CLUB * 70 REM * TOLEDO, OHIO * 80 REM * * 90 REM ***************************** 100 OPEN15,8,15 110 DIM A$(9):SC=20 120 A=0:A$(0)="DISK HOUSEKEEPING PROGRAM" 130 A$(1)="FORMAT NEW DISK" 140 A$(2)="RENAME EXISTING DISK" 150 A$(3)="VALIDATE A DISK" 170 A$(4)="RENAME A FILE" 180 A$(5)="BACK-UP A FILE" 190 A$(6)="SCRATCH A FILE" 200 A$(7)="LIST A DIRECTORY" 210 A$(8)="PRINT A DIRECTORY" 220 POKE53280,15:POKE53281,15:GOSUB1810 230 FORA=1 TO 8:PRINTTAB(7);"";A;"[157].[151] ";A$(A);"":NEXT 240 PRINT" [164][164]" 250 PRINT" MAKE A SELECTION OR PRESS F1[146] TO END [151]" 260 GETA$:IFA$=""THEN260 270 IFA$=CHR$(133)THENPRINT"[145][145]":END 280 A=VAL(A$):IFA<1ORA>8THEN260 290 GOSUB 1810:ON A GOTO 300,410,710,1380,1150,1270,970,1500 300 REM *************** 310 REM * FORMAT DISK * 320 REM *************** 330 GOSUB1840:GOSUB1880:GOSUB1890 340 IFB$="N"THENGOTO280 350 GOSUB1930:IFB$="N"THENGOTO120 360 PRINT"[145][145][154] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 370 PRINT"  FORMATTING DISK " 380 PRINT#15,"N0:"+DN$+","+ID$ 390 GOSUB 1740:IFEN>20THENGOSUB2030:GOTO120 400 GOTO120 410 REM *************** 420 REM * RENAME DISK * 430 REM *************** 440 PRINT"":GOSUB1930:IFB$="N"THENCLOSE2:GOTO120 450 GOSUB1810:PRINT"":PRINT#15,"I":GOSUB1740:IFEN>20THENGOSUB2030:GOTO120 460 OPEN2,8,2,"#" 470 PRINT#15,"U1";2;0;18;0:GOSUB1740:IFEN>20THENGOSUB2030:GOTO120 480 PRINT#15,"B-P:";2;144 490 FORI=1TO16 500 GET#2,C$ 510 IFC$=""THENC$=CHR$(0) 520 C=ASC(C$) 530 IFC>127THENC=C-128 540 IFC<32ORC>95THENC=32 550 IFC=34THENC=32 560 N$=N$+CHR$(C) 570 NEXTI 580 PRINT" " 590 PRINT" [151]DISK NAME: [129]" 600 PRINTTAB(18);"[145]";N$:N$="" 610 INPUT" [151]NEW NAME: [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][129][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";DN$ 620 IF LEN(DN$)<16THENDN$=DN$+CHR$(160):GOTO620 630 GOSUB1890:IFB$="N"THENCLOSE2:GOTO280 640 GOSUB1930:IFB$="N"THENCLOSE2:GOTO120 650 PRINT"[145][145][154] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 660 PRINT"  RENAMING DISK " 670 PRINT#15,"B-P:";2;144 680 PRINT#2,DN$; 690 PRINT#15,"U2";2;0;18;0:GOSUB1740:IFEN>20THENGOSUB2030:GOTO120 700 CLOSE2:GOSUB2030:GOTO120 710 REM ********************* 720 REM * VALIDATE DISKETTE * 730 REM ********************* 740 PRINT"":GOSUB1930:IFB$="N"THENGOTO120 750 PRINT"[145][145][154] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 760 PRINT"  VALIDATING DISK " 770 PRINT#15,"V":GOSUB1740:IFEN>20THENGOSUB2030:GOTO120 780 GOTO120 970 REM ******************** 980 REM * LOAD A DIRECTORY * 990 REM ******************** 1000 PRINT"":GOSUB1930:IFB$="N"THENGOTO120 1010 N$=CHR$(0):GOSUB1810 1020 PRINT#15,"I0":GOSUB1740:IFEN>20THENGOSUB2030:GOTO120 1030 OPEN2,8,0,"$0":GOSUB1740:IFEN>20THENGOSUB2030:GOTO120 1040 GET#2,B$,B$:N=0 1050 GET#2,B$,B$ 1060 IFB$=""THENGOTO1120 1070 GET#2,B$,C$ 1080 PRINTTAB(5);"[151]";ASC(B$+N$)+ASC(C$+N$)*256; 1090 GET#2,B$:IFB$=""THENPRINTC$:C$="":N=N+1:IFN>15THENGOTO1130 1100 IFB$=""THENGOTO1050 1110 C$=C$+B$:GOTO1090 1120 CLOSE2:GOSUB2030:GOTO120 1130 GOSUB2060:IFB$="N"THENCLOSE2:GOTO120 1140 GOSUB1810:N=0:GOTO1050 1150 REM ****************** 1160 REM * BACK-UP A FILE * 1170 REM ****************** 1180 PRINT"[129]ENTER:" 1190 INPUT"[151]FILENAME[129] ";N$ 1200 INPUT"[151]B/UP NAME[129]";BN$ 1210 GOSUB1890:IFB$="N"THENGOTO290 1220 GOSUB1930:IFB$="N"THENGOSUB2030:GOTO120 1230 PRINT"[145][145][154] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 1240 PRINT"  BACK-UP BEING CREATED " 1250 PRINT#15,"C0:"+BN$+"="+N$ 1260 GOSUB1740:GOSUB2030:GOTO120 1270 REM ****************** 1280 REM * SCRATCH A FILE * 1290 REM ****************** 1300 PRINT"[129]ENTER:" 1310 INPUT"[151]FILENAME[129] ";N$ 1320 GOSUB1890:IFB$="N"THENGOTO290 1330 GOSUB1930:IFB$="N"THENGOSUB2030:GOTO120 1340 PRINT"[145][145][154] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 1350 PRINT"  FILE BEING SCRATCHED " 1360 PRINT#15,"S0:"+N$ 1370 GOSUB1740:GOSUB2030:GOTO120 1380 REM ***************** 1390 REM * RENAME A FILE * 1400 REM ***************** 1410 PRINT"[129]ENTER:" 1420 INPUT"[151]OLD FILENAME[129] ";N$ 1430 INPUT"[151]NEW FILENAME[129] ";NN$ 1440 GOSUB1890:IFB$="N"THENGOTO290 1450 GOSUB1930:IFB$="N"THENGOSUB2030:GOTO120 1460 PRINT"[145][145][154] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 1470 PRINT"  RENAMING FILE " 1480 PRINT#15,"R0:"+NN$+"="+N$ 1490 GOSUB1740:GOSUB2030:GOTO120 1500 REM ********************* 1510 REM * PRINT A DIRECTORY * 1520 REM ********************* 1530 PRINT"[129][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 1540 PRINT"[129]IS PRINTER ON? (Y/N)[146]" 1550 GETB$:IFB$<>"Y"ANDB$<>"N"THEN1550 1560 IFB$="N"THEN120 1570 PRINT"[145]":GOSUB1930:IFB$="N"THEN120 1580 PRINT"[145][145][154] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 1590 PRINT"  PRINTING DIRECTORY " 1600 N$=CHR$(0):N=0 1610 OPEN2,8,0,"$0":GOSUB1740:IFEN>20THENGOSUB2030:GOTO120 1620 OPEN4,4,0 1630 GET#2,B$,B$ 1640 GET#2,B$,B$:IFB$=""THEN1730 1650 GET#2,B$,C$:IFN/2<>INT(N/2)THEN1690 1660 PRINT#4,ASC(B$+N$)+ASC(C$+N$)*256;:GOSUB1710:PRINT#4,C$;:C$="" 1670 IFN=0THENPRINT#4:PRINT#4:N=N+1 1680 N=N+1:GOTO1640 1690 PRINT#4,CHR$(16)CHR$(52)CHR$(48)ASC(B$+N$)+ASC(C$+N$)*256;:GOSUB1710 1700 PRINT#4,C$:C$="":N=N+1:GOTO1640 1710 GET#2,B$:IFB$<>""THENC$=C$+B$:GOTO1710 1720 RETURN 1730 PRINT#4:CLOSE4:CLOSE2:GOSUB2030:GOTO120 1740 INPUT#15,EN,EM$ 1750 IFEN<20THENRETURN 1760 LM=LEN(EM$)+4 1770 PRINT"[129][145][145] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 1780 PRINT"  " 1790 PRINT"[145]";TAB(SC-LM/2);EN;EM$ 1800 CLOSE1:CLOSE2:RETURN 1810 L=LEN(A$(A)):PRINT"[147][144][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]" 1820 PRINT"[144][194][129]";TAB(SC-L/2);A$(A);TAB(33);"[144][194]" 1830 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203][151]":RETURN 1840 PRINT" [129]ENTER:" 1850 INPUT" [151]DISK NAME [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][129][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";DN$ 1860 IF LEN(DN$)<16THENDN$=DN$+CHR$(160):GOTO1860 1870 RETURN 1880 INPUT"[151] DISK ID [164][164][129][157][157][157][157]";ID$:RETURN 1890 PRINT"[129] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][146]" 1900 PRINT" IS INFORMATION CORRECT? (Y/N)[146]" 1910 GETB$:IFB$<>"Y"ANDB$<>"N"THEN1910 1920 RETURN 1930 PRINT"[145][145][129] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 1940 PRINT" [129]DISK LOCKED INTO DRIVE? (Y/N)[146]":GOSUB2010 1950 GETB$:IFB$<>"Y"ANDB$<>"N"THEN1970 1960 RETURN 1970 PRINT"[145][145] " 1980 PRINT" [129]DISK LOCKED INTO DRIVE? (Y/N)":FORD=1TO300:NEXT 1990 GETB$:IFB$<>"Y"ANDB$<>"N"THENGOTO1930 2000 RETURN 2010 POKE54296,3:POKE54276,17:POKE54277,9:POKE54278,40 2020 POKE54273,42:POKE54272,62:FOR D=1TO300:NEXT:POKE54276,16:RETURN 2030 PRINT" PRESS F1 FOR MENU [152][146]" 2040 GETB$:IFB$<>CHR$(133)THEN2040 2050 RETURN 2060 PRINT"[129] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][146]" 2070 PRINT"  CONTINUE LISTING? (Y/N)[146]" 2080 GETB$:IFB$<>"Y"ANDB$<>"N"THEN1910 2090 RETURN